package cn.tqfeiyang.smartadmin.commons.toolbox;

import java.lang.reflect.Method;

/**
 * 字段工具类
 *
 * @author tqfeiyang
 * @since 2024/9/24 8:13
 */
public class FieldUtils {

    private FieldUtils() {}

    /**
     * 获取字段值，通过 getXXX() 或 isXXX() 方法
     *
     * @param dto
     * @param name
     * @return 字段值
     */
    public static Object getFieldValue(Object dto, String name) {
        try {
            Method[] m = dto.getClass().getMethods();
            for (int i = 0; i < m.length; i++) {
                if (("get" + name).toLowerCase().equals(m[i].getName().toLowerCase())
                        || ("is" + name).toLowerCase().equals(m[i].getName().toLowerCase())) {
                    return m[i].invoke(dto);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
